-- @Author: 作者QQ201878826
-- @Date:   2022-05-01 07:37:57
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-23 06:58:59
--======================================================================--
-- @作者: QQ381990860
-- @创建时间:   2019-12-03 02:17:19
-- @Last Modified time: 2021-11-07 00:37:20
--======================================================================--
local 场景类_一键附魔 = class(窗口逻辑)
local sd =0
local sd1 =0
local tp,zts,zts1
local floor = math.floor
local tonumber = tonumber
local tostring = tostring
local insert = table.insert
local 图像类 = require("gge图像类")
local 矩阵 = require("gge包围盒")(0,0,71,22)

function 场景类_一键附魔:初始化(根)
	self.ID = 44444
	self.x = 280+(全局游戏宽度-800)/2
	self.y = 120
	self.xx = 0
	self.yy = 0
	self.注释 = "一键附魔"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.可移动 = true
	local 按钮 = 根._按钮
	local 自适应 = 根._自适应
	local 资源 = 根.资源
	self.资源组 = {
		[1] = 自适应.创建(0,1,480,381,3,9),
		[2] = 按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true),
		[3] = 按钮.创建(自适应.创建(11,4,100,20,1,3),0,0,4,true,true,"一键附魔"),
		[4] = 自适应.创建(3,1,85,18,1,3),

	}
	self.附魔状态 = {}
	self.附魔选中 = {}
	for n=1,16 do 
	self.附魔选中[n] = 按钮.创建(自适应.创建(30,4,26,26,4,1),0,0,5,true,true)
	self.附魔选中[n]:绑定窗口_(44444)
	self.附魔选中[n].允许再次点击 = true
	self.附魔状态[n] = false
	end
	
	
	for n=2,3 do
	   self.资源组[n]:绑定窗口_(44444)
	end

	self.窗口时间 = 0
	tp = 根
	zts = tp.字体表.普通字体__
	zts1 = tp.字体表.描边字体
	self.进程 = 1
	self.胜利 = 3
	self.点击 = false
	self.附魔数 = 0
	self.颜色 = -16466190
	self.偏移 = 0
	self.提示文字 = "每项属性附魔费用为88W(聚宝盒玩家费用66W),当临时效果达到最大值,将\n\n自动取消选中。"
	
end



function 场景类_一键附魔:打开(数据)
	if self.可视 then
		self.可视 = false
		self.进程 = 1
		self.胜利 = 3
		self.点击 = false
		self.颜色 = -16466190
	    self.偏移 = 0
		

	else
		
		self.数据=数据
		insert(tp.窗口_,self)
	    tp.运行时间 = tp.运行时间 + 1
	  	self.窗口时间 = tp.运行时间
	    self.可视 = true
		self.点击 = false
		self.颜色 = -16466190
	    self.偏移 = 0
		self.属性 = {"伤害","力量","命中","体质","速度","耐力","愤怒","防御","魔力","气血","法防","法术伤害","固定伤害","气血回复效果","封印命中等级","抵抗封印等级"}
		self.属性值 = {}
			
		self.附魔状态 = self.数据.锁定附魔
		self.起始时间 = os.time()

	end
end
function 场景类_一键附魔:刷新(数据)

self.数据=数据
self.附魔状态 = self.数据.锁定附魔


end

function 场景类_一键附魔:是否最大(类型,数值)

if 数值 == nil then 
 数值 = 0
end

local 上限表 = {
伤害 = math.floor(180 *1) ,
力量 = math.floor(180 *0.5),
命中 = math.floor(180 *2),
体质 = math.floor(180 *0.5),
速度 = math.floor(180 *0.5),
耐力 = math.floor(180 *0.5),
愤怒 = math.floor(180 *0.2),
防御 = math.floor(180 *1),
魔力 = math.floor(180 *0.5),
气血 = math.floor(180 *2),
法防 = math.floor(180 *0.5),
法术伤害 =math.floor(180 *0.5),
固定伤害 =math.floor(180 *0.5),
气血回复效果 =math.floor(180 *0.5),
封印命中等级 =math.floor(180 *0.5),
抵抗封印等级 =math.floor(180 *0.5)
}


if 数值 == 上限表[类型] then 
return true
end

return false
end




function 场景类_一键附魔:显示(dt,x,y)
	self.焦点 = false

	self.资源组[2]:更新(x,y)
	self.资源组[3]:更新(x,y)
	self.资源组[1]:显示(self.x,self.y)
	self.资源组[2]:显示(self.x+445,self.y+3)
	self.资源组[3]:显示(self.x+185,self.y+285)   
	tp.字体表.普通字体:置颜色(0xFFFFFFFF):显示(self.x+210,self.y+3,self.注释)
	tp.字体表.普通字体:置颜色(-256):显示(self.x+10,self.y+330,self.提示文字)

	  for i=21,26 do
	    if self.数据.物品数据[i]~=nil  then 
		       for n=1,4 do 
			      if self.数据.物品数据[i][n] ~= nil then
		            self.属性值[self.数据.物品数据[i][n].类型] = self.数据.物品数据[i][n].数值
				  end
		       end
		 end
	   end
	   
	local xx = 0 
	local yy = 0
	for n=1,#self.属性 do 

        self.资源组[4]:显示(self.x+150+xx*220,self.y+35+31*yy)
        tp.字体表.普通字体:置颜色(0xFFFFFFFF):显示(self.x+50+xx*220,self.y+40+30*yy ,self.属性[n])
	    tp.字体表.普通字体:置颜色(0xFF0000ff):显示(self.x+160+xx*220,self.y+40+30*yy ,"+"..(self.属性值[self.属性[n]] or 0))
		
		if self:是否最大(self.属性[n],self.属性值[self.属性[n]] or 0) then
		 tp.字体表.普通字体:置颜色(0xFFFFFF00):显示(self.x+190+xx*220,self.y+40+30*yy ,"(最大)")
		 self.附魔状态[n] = false
		end
		
		self.附魔选中[n]:更新(x,y,self.附魔状态[n] ~= true)
		self.附魔选中[n]:显示(self.x+18+xx*220,self.y+33+30*yy,true,nil,nil,self.附魔状态[n],4)
	           if self.附魔选中[n]:事件判断() then
		          self.附魔状态[n] = not self.附魔状态[n]
		            if self:是否最大(self.属性[n],self.属性值[self.属性[n]] or 0) then
		               self.附魔状态[n] = false
					    tp.提示:写入("#Y/已经是最大值无需附魔")
		            end
                 
				  if self.附魔状态[n] then 
		             客户端:发送数据(2, 26400, 13, n, 1)
					elseif self.附魔状态[n]==false then 
					 客户端:发送数据(2, 26500, 13, n, 1)
					 
		           end
				 end
	   
	    xx = xx + 1
		if xx == 2 then
			xx = 0
			yy = yy + 1
		end
		
    end
	
	if self.资源组[2]:事件判断() then
		self:打开()
	elseif self.资源组[3]:事件判断() then
	
	    if os.time() -  self.起始时间 < 1 then 
		     tp.提示:写入("#Y/请不要频繁点击,间隔1秒再试")
		  return
		end
	
	             for n=1,#self.属性 do 
		            if self:是否最大(self.属性[n],self.属性值[self.属性[n]] or 0) then
		              客户端:发送数据(2, 26500, 13, n, 1)
		            end
				  end
	       self.起始时间 = os.time()
		  客户端:发送数据(2, 266, 13, "9", 1) 
	
    end
end

function 场景类_一键附魔:检查点(x,y)
	if self.资源组[1]:是否选中(x,y)  then
		return true
	end
end

-- function 场景类_一键附魔:初始移动(x,y)
	-- tp.运行时间 = tp.运行时间 + 1
	-- if not 引擎.消息栏焦点 then
  		-- self.窗口时间 = tp.运行时间
 	-- end
	-- if not self.焦点 then
		-- tp.移动窗口 = true
	-- end
	-- if self.鼠标 and  not self.焦点 then
		-- self.xx = x - self.x
		-- self.yy = y - self.y
	-- end
-- end

-- function 场景类_一键附魔:开始移动(x,y)
	-- if self.鼠标 then
		-- self.x = x - self.xx
		-- self.y = y - self.yy
	-- end
-- end
return 场景类_一键附魔